#include<bits/stdc++.h>
using namespace std;
const int N=25;
bool b[N];
int t,n,m,l,vv,ans,ans2;
int p[N],d[N],v[N],a[N],num[N];
vector<int>pan;
int main()
{
	//freopen("detect.in","r",stdin);
	//freopen("detect.out","w",stdout);
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d%d",&n,&m,&l,&vv);
		for(int i=1;i<=n;i++)
			scanf("%d%d%d",d[i],v[i],a[i]);
		for(int i=1;i<=m;i++)
			scanf("%d",p[i]);
		ans=0;
		ans2=0;
		for(int i=1;i<=n;i++)
		{
			int nv=a[i];
			bool flag=true;
			for(int t=0;t*nv<=l&&nv>0&&flag;t++)
			{
				int s=v[i]*t+a[i]*t*t/2;
				int sv=v[i]*v[i]+2*a[i]*s;
				if(sv>vv*vv)
				{
					for(int j=1;j<=m;j++)
						if(s+d[i]>=p[j])
						{
							flag=false;
							pan.push_back(j);
							break;
						}	
				}
			}
			if(!flag)ans++;
		}
		printf("%d ",ans);
		for(int i=1;i<=pan.size();i++)
			p[pan[i]]=-1;
		for(int i=1;i<=m;i++)
			if(p[i]==-1)ans2++;
		printf("%d\n",ans2);
	}
	return 0;
}
